<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试越多越好吗？</title>
    <meta content="1200" property="og:image:width"/>
    <meta content="630" property="og:image:height"/>
    <link rel="icon" href="../../img/icon.png">
    <link as="font" crossorigin="" href="../../Agrandir-Heavy.2fd076131b76.woff2" rel="preload"
          type="font/woff2"/>
    <link as="font" crossorigin="" href="../../Agrandir-Bold.5adcade67872.woff2" rel="preload"
          type="font/woff2"/>
    <link as="font" crossorigin="" href="../../source-sans-pro-v14-latin-regular.899c8f78ce65.woff2"
          rel="preload" type="font/woff2"/>
    <link as="font" crossorigin="" href="../../Agrandir-Regular.11a4ceb99823.woff2" rel="preload"
          type="font/woff2"/>
    <link as="font" crossorigin="" href="../../source-sans-pro-v14-latin-600.c85615b29630.woff2" rel="preload"
          type="font/woff2"/>
    <link href="../../common.0016184b0568.css" rel="stylesheet" type="text/css"/>
    <link href="../../home.a12d472bcf09.css" rel="stylesheet" type="text/css"/>
    <link href="../content-page.css" rel="stylesheet" type="text/css"/>
</head>
<header class="site-header">
    <br/>
    <h1 style="margin: 0 auto;text-align: left;margin: 0 50px;color: white;font-size: 3.5rem">
        <img src="../../svg/icon-white.svg" height="80" width="80"/>&nbsp;&nbsp;Neil's wiki
        <button class="subscribe" onclick="location.href='../subscribe/index.html'">Subscribe</button>
    </h1>
    <br/>
</header>
<body class="content-body">
<div class="content-body-class">
    <h1 class="hosting-pricing-plan-block__header">测试越多越好吗？</h1>
    <div class="content-infos">
        <div class="content-words">
            优点过了就成了缺点。测试虽好，不顾任何场景的意味着追求100%覆盖率是不可取的。回答这个问题之前你要清楚你为什么写测试，它能给你和你的团队带来什么价值？其次你们为了获得这些价值，你和你的团队付出了什么努力？这其实是一个性价比的问题，思考这个问题需要结合近期目标和长远目标两个维度。软件开发通常不是一锤子买卖，而敏捷软件开发强调的是优先高质量交付高价值的功能。如何做到高质量，测试是一个经过实践证明为有效的方式。所以写测试一定是值得去做的事情。
        </div>
        <div class="content-words">
            回到实际项目中，写测试也可以优先编写价值最高的测试，所以在你写第一个测试的时候，往往是测试的最重要的场景，这个测试的价值会是最高的，伴随着你的测试覆盖率提高，高价值的场景被覆盖过了，测试会去覆盖一些边界条件，也就是一些用户不常发生的行为，但这也要去保证质量。这个时候的测试价值会逐渐降低，而编写的成本会逐渐升高，因为边界条件思考和准备起来更花精力，所以当你的测试覆盖率达到一定程度的时候，应该停下来思考一下要不要继续提高覆盖率了，至于这个覆盖率设置为多少合适，没有标准答案，不同项目都可以有自己的评估。
        </div>
        <div class="content-words">
            跳出这个问题，测试应该测什么更多是我们要去思考的问题，而不是无脑追求覆盖率，我见过有些团队为了达到100%的指标，花时间补一些几乎没有价值的测试，只为了覆盖率，这样就本末倒置了。
        </div>
        <div class="content-addition">
            文章转载自<a href="https://xpbootcamp.cn/tdd/questions/008">袁慎建</a>
        </div>
    </div>
</div>
</body>
</html>
<div class="back-to-home-page">
    <a class="call-to-action__link button" href="/">返回首页</a>
</div>

